﻿/*
----------------------------------------
    Rodeo Game Engine

    Rodeo Event Module
    InputListenerInterface.h - header file

    Copyright(c) Marcin Goryca
-----------------------------------------
*/
#ifndef RODEO_EVENT_INPUTLISTENERINTERFACE_H_
#define RODEO_EVENT_INPUTLISTENERINTERFACE_H_

#include <list>

#ifndef RODEO_IO_INPUTINTERFACE_H_
#include "io\inputinterface.h"
#endif

namespace rodeoevent
{
class InputListenerInterface
{
public:
    InputListenerInterface(){}

    virtual ~InputListenerInterface(){}

    int getInputType()const;

    void addInputListener(rodeoio::InputInterface* in);

    virtual void keyUp(rodeoio::InputInterface key) = 0;

    virtual void keyDown(rodeoio::InputInterface key) = 0;

    virtual void mouseDblClick(rodeoio::InputInterface ms) = 0;

    virtual void mouseMove(rodeoio::InputInterface ms) = 0;

    virtual void mouseExit(rodeoio::InputInterface ms) = 0;

    virtual void mouseScroll(rodeoio::InputInterface ms) = 0;

    virtual void mouseClick(rodeoio::InputInterface ms) = 0;

    virtual void mouseDrag(rodeoio::InputInterface ms) = 0;

protected:
//==== MEMBERS ====//
    std::list <rodeoio::InputInterface*> inputList;
};
}    //end of rodeoevent namespace
#endif    //RODEO_EVENT_INPUTLISTENERINTERFACE_H_